      1  import java.awt.event.MouseListener;

      2  import java.awt.event.MouseEvent;

      3  import javax.swing.JFrame;

      4

      5  import java.awt.event.KeyListener;

      6  import java.awt.event.KeyEvent;

      7  import javax.swing.KeyStroke;

      8

      9  /**

     10     This frame contains a moving rectangle.

     11  */

     12  public class RectangleFrame3 extends JFrame

     13  {

     14     private static final int FRAME_WIDTH = 300;

     15     private static final int FRAME_HEIGHT = 400;

     16

     17     private RectangleComponent3 scene;

     18

     19     class MousePressListener implements MouseListener

     20     {

     21        public void mousePressed(MouseEvent event)

     22        {

     23           int x = event.getX();

     24           int y = event.getY();

     25           scene.moveRectangleTo(x, y);

     26        }

     27

     28        // Do-nothing methods

     29        public void mouseReleased(MouseEvent event) {}

     30        public void mouseClicked(MouseEvent event) {}

     31        public void mouseEntered(MouseEvent event) {}

     32        public void mouseExited(MouseEvent event) {}

     33     }

     34

     35     class KeyStrokeListener implements KeyListener

     36     {

     37        public void keyPressed(KeyEvent event)

     38        {

     39           String key = KeyStroke.getKeyStrokeForEvent(event).toString().replace("pressed ", "");

     40           if (key.equals("DOWN"))

     41           {

     42              scene.moveRectangleBy(0, 1);

     43           }

     44           else if (key.equals("UP"))

     45           {

     46              scene.moveRectangleBy(0, -1);

     47           }

     48           else if (key.equals("LEFT"))

     49           {

     50              scene.moveRectangleBy(-1, 0);

     51           }

     52           else if (key.equals("RIGHT"))

     53           {

     54              scene.moveRectangleBy(1, 0);

     55           }

     56        }

     57        public void keyTyped(KeyEvent event) {}

     58        public void keyReleased(KeyEvent event) {}

     59     }

     60

     61     public RectangleFrame3()

     62     {

     63        scene = new RectangleComponent3();

     64        add(scene);

     65

     66        MouseListener listener = new MousePressListener();

     67        scene.addMouseListener(listener);

     68

     69        scene.addKeyListener(new KeyStrokeListener());

     70        scene.setFocusable(true);

     71

     72        setSize(FRAME_WIDTH, FRAME_HEIGHT);

     73     }

     74  }